package com.bb.flow.config;

/**
 * @author bigbeard
 * 判断节点的取向信息
 */
public class ToNode {
    /**
     * 跳转到的节点名称
     */
    private String nodeKey;
    /**
     * 表达式
     */
    private String expression;
    /**
     * 顺序
     */
    private int orderIndex;
    /**
     * 当此节点满足后是否继续计算后面节点
     */
    private boolean needCalcNext;

    /**
     * 跳转目标节点名称
     *
     * @return 节点名称
     */
    public String getNodeKey() {
        return nodeKey;
    }

    /**
     * 目标节点名称
     *
     * @param nodeKey 节点名称
     * @return 当前对象
     */
    public ToNode setNodeKey(String nodeKey) {
        this.nodeKey = nodeKey;
        return this;
    }

    /**
     * 计算表达式
     *
     * @return 表达式
     */
    public String getExpression() {
        return expression;
    }

    /**
     * 计算表达式
     *
     * @param expression 表达式
     * @return 当前对象
     */
    public ToNode setExpression(String expression) {
        this.expression = expression;
        return this;
    }

    /**
     * 顺序
     *
     * @return 顺序
     */
    public int getOrderIndex() {
        return orderIndex;
    }

    /**
     * 顺序
     *
     * @param orderIndex 顺序
     * @return 当前对象
     */
    public ToNode setOrderIndex(int orderIndex) {
        this.orderIndex = orderIndex;
        return this;
    }

    /**
     * 是否计算下一个节点
     *
     * @return true:计算,false不计算
     */
    public boolean isNeedCalcNext() {
        return needCalcNext;
    }

    /**
     * 是否计算下一个节点
     *
     * @param needCalcNext true:计算,false不计算
     * @return 当前对象
     */
    public ToNode setNeedCalcNext(boolean needCalcNext) {
        this.needCalcNext = needCalcNext;
        return this;
    }

    @Override
    public String toString() {
        return "ToNode{" +
                "nodeKey='" + nodeKey + '\'' +
                ", expression='" + expression + '\'' +
                ", orderIndex=" + orderIndex +
                ", needCalcNext=" + needCalcNext +
                '}';
    }
}
